CPUs explained